package serversocketnio;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;

/**
 * NIO服务端
 * @author wh
 *
 */
public class NIOServer {

	//通道管理器
	private Selector selector;
	
	/**
	 * 获得一个ServerSocket通道，并对该通道做一些初始化工作
	 * @param port
	 * @throws IOException
	 */
	public void initServer(int port) throws IOException {
		//获取一个ServerSocket通道
		ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
		//设置通道为非阻塞
		serverSocketChannel.configureBlocking(false);
		//将该通道的对应的ServerSocket绑定到port端口
		serverSocketChannel.socket().bind(new InetSocketAddress(port));
		//获得一个通道管理器
		this.selector = Selector.open();
		//将通道管理器与改通道绑定，并未该通道注册SelectionKey.OP_ACCEPT事件，注册该事件后，当事件到达时，
	}
}
